import axios from "axios"

// 因为modules是一个对象, 那么这里导出一个对象即可
export default {
    // 提高封闭性, 使用命名空间
    namespaced: true,
    state: {
        allData: {} // 所有的数据, 格式: { 分类id: 列表1, 分类id: 列表2 }
    },
    mutations: {
        // payload的数据结构: { 1: [], 2: [], 3: [] }
        updateList(state, { currentCatagtory, list }) {
            // state.allData[currentCatagtory], list; // 这种写法不是响应式的, 不会通知组件

            // 如果[currentCatagtory] = 1, 那么会覆盖allData中id为1的值.
            state.allData = {...state.allData, [currentCatagtory]: list } // 更新某个属性的值. 如果没有这个属性, 那么就新增, 否则覆盖.
            console.log(state.allData);
        }
    },
    actions: {
        // 功能: 获取新闻列表数据
        async getNewList(context, cateId) {
            const { data: { data: { results } } } = await axios({
                url: `http://api-toutiao-web.itheima.net/app/v1_1/articles?channel_id=${cateId}&timestamp=1556789000001&with_top=1`,
                method: "GET"
            });
            // console.log(results);
            context.commit('updateList', { currentCatagtory: cateId, list: results })
        }
    }
}